﻿#pragma once
#include "LuaObject.h"

//用于在C++中保存lua对象
class LuaRef
{
public:
	LuaRef();
	LuaRef(LuaObject obj);
	LuaRef(const LuaRef&) = delete;
	LuaRef(LuaRef&& ref);
	~LuaRef();

	LuaRef& operator=(const LuaObject& other);

	LuaObject getObject();
	LuaObject getObject(LuaState* L);

	void ref(const LuaObject& obj);
	void unref();
private:
	LuaState* m_ls;
	int m_ref;
};
